/*
 * MapaEspacioLibre.cpp
 *
 *  Created on: Nov 15, 2012
 *      Author: romina
 */

#include "MapaEspacioLibre.h"

MapaEspacioLibre::MapaEspacioLibre() {
	this->cantidad_registros = 0;
}

void MapaEspacioLibre::add(int espacio_libre){
	if (espacio_libre == 1)
		this->espacios.push_back("1");
	else
		this->espacios.push_back("0");
}

void MapaEspacioLibre::set_cantidad_registros(int cantidad){
	this->cantidad_registros = cantidad;
}

void MapaEspacioLibre::serializar(char * buffer, unsigned int &offset){
	list<string>::iterator itrecord;
	cout << "me pudro" << endl;
	int i = 0;
	for(itrecord = this->espacios.begin(); itrecord != this->espacios.end(); ++itrecord){

		cout << i << " " << string(buffer).length() << endl;
		PersistorHASH::transformar_cadena_en_char(buffer, offset, (char*)(*itrecord).c_str());
		//PersistorHASH::transformar_entero_en_char(buffer, offset, (*itrecord));
		i++;
	}
	cout << "termino" << endl;

}

void MapaEspacioLibre::deserializar(char * buffer, unsigned int &offset){
	this->espacios.clear();
	for(int i = 0; i < this->cantidad_registros; i++){
		//int libres = PersistorHASH::obtener_entero_desde_Buffer(buffer, offset);
		string espacio = PersistorHASH::obtener_cadena_desde_Buffer(buffer, offset);

		this->espacios.push_back(espacio);
	}
}

string MapaEspacioLibre::toString(){
	string resultado = "";
	list<string>::iterator itrecord;
	int id = 1;
	for(itrecord = this->espacios.begin(); itrecord != this->espacios.end(); ++itrecord){
		resultado.append((*itrecord) + " " );
		//resultado.append(Palabra::intToString(id) + ":" +(*itrecord) + " " );
		id++;
	}
	return resultado;
}


MapaEspacioLibre::~MapaEspacioLibre() {
	// TODO Auto-generated destructor stub
}

